3
תגובות
בעיה ב mysqli
פתח
hexdec
,
אני מנסה להתחיל להשתמש ב mysqli ויש לי קוד כזה ב index:
(עזבו את justtest וכל השאר).
ב Sql.class.php יש לי את זה:
וב Members.class.php יש לי את זה:
אני בעצם מנסה לעשות את המתודה justtest, אבל מופעיה לי השגיאה הבאה:
אם אני מנסה למעלה לעשות extends ל Sql ולא ל mysqli בכלל כל הדף שגיאות.
אין לי שום בעיה בחיבור או משהו, מכוון שאם אני לא קורא למתודה אין שום שגיאה.
תודה!
<?php
include 'lib/Sql.class.php';
include 'lib/Members.class.php';
include 'lib/Upload.class.php';
$members = new Members();
$upload = new Upload("uploads");
$members->justtest();
?>
include 'lib/Sql.class.php';
include 'lib/Members.class.php';
include 'lib/Upload.class.php';
$members = new Members();
$upload = new Upload("uploads");
$members->justtest();
?>
(עזבו את justtest וכל השאר).
ב Sql.class.php יש לי את זה:
<?php
class Sql extends mysqli {
private $connected = false;
public function __construct($host, $user, $pass, $db, $charset) {
parent::__construct($host, $user, $pass, $db);
if ($this->connect_error)
die('Connection Error: '.$this->connect_error);
$this->set_charset($charset);
$this->connected = true;
}
public function query($query, $resultmode = MYSQLI_STORE_RESULT) {
$res = parent::query($query, $resultmode);
if ($res == false) die('SQL Error: '.$this->error);
return $res;
}
function __destruct() {
if ($this->connected) $this->close();
}
}
$mysqli = new Sql('localhost', 'root', '', 'imageupload', 'utf8');
?>
class Sql extends mysqli {
private $connected = false;
public function __construct($host, $user, $pass, $db, $charset) {
parent::__construct($host, $user, $pass, $db);
if ($this->connect_error)
die('Connection Error: '.$this->connect_error);
$this->set_charset($charset);
$this->connected = true;
}
public function query($query, $resultmode = MYSQLI_STORE_RESULT) {
$res = parent::query($query, $resultmode);
if ($res == false) die('SQL Error: '.$this->error);
return $res;
}
function __destruct() {
if ($this->connected) $this->close();
}
}
$mysqli = new Sql('localhost', 'root', '', 'imageupload', 'utf8');
?>
וב Members.class.php יש לי את זה:
<?php
class Members extends mysqli {
public function add_member($username, $password) {
}
public function justtest() {
if ($result = $this->query('SELECT NOW()')) {
echo 'Mysql returned '.$result->num_rows.' row with '.$result->field_count.' field';
}
}
}
?>
class Members extends mysqli {
public function add_member($username, $password) {
}
public function justtest() {
if ($result = $this->query('SELECT NOW()')) {
echo 'Mysql returned '.$result->num_rows.' row with '.$result->field_count.' field';
}
}
}
?>
אני בעצם מנסה לעשות את המתודה justtest, אבל מופעיה לי השגיאה הבאה:
Warning: mysqli::query() [mysqli.query]: invalid object or resource Members in C:\wamp\www\imageupload\lib\Members.class.php on line 8
אם אני מנסה למעלה לעשות extends ל Sql ולא ל mysqli בכלל כל הדף שגיאות.
אין לי שום בעיה בחיבור או משהו, מכוון שאם אני לא קורא למתודה אין שום שגיאה.
תודה!
3 תשובות
תעשה טבלת מעקב ותגיע למסקנה שאף אחד אף פעם לא פתח חיבור למסד במחלקה Members
אז מה לעשות? אם אני אעשה extends ל Sql אז בגלל יהיו לי שגיאות..
מה אני אמור לעשות?
ענה
משתמש_110317
ב
13 לפברואר 2012
#
לחשוב ואז לעשות ככה שיהיה חיבור למסד לפני שאתה מפעיל את פונקציה query.